from . import index_blue
from flask import render_template, current_app, session
from info.models import User
import logging


@index_blue.route('/')
def index():
    """主页
    1.从session中，读取用户登录信息user_id
    2.查询user_id对应的user信息
    
    构造渲染模板的数据
    响应渲染之后的主页
    """
    # 1.从session中，读取用户登录信息user_id
    user_id = session.get('user_id', None)

    # 2.查询user_id对应的user信息
    user = None
    if user_id:
        try:
            user = User.query.get(user_id)
        except Exception as e:
            logging.error(e)
            # user = None

    # 构造渲染模板的数据(上下文)
    context = {
        # to_dict() 目的是为了返回处理之后的数据
        # 三元运算符：如果有user,就把user.to_dict()赋值给'user';反之，就把None赋值给'user'
        'user':user.to_dict() if user else None
    }

    # 响应主页模板（index.html）
    # 注意：render_template  会从templates文件夹中查找模板文件
    return render_template('news/index.html', context=context)


@index_blue.route('/favicon.ico')
def favicon():
    """返回网站title图标"""
    return current_app.send_static_file('news/favicon.ico')